
#include <string.h>
#include <iostream>
#include "include/pVect.h"

#ifndef TESTS_H
#define TESTS_H

void assert(bool condition, std::string message){
    if(!condition){
        std::cerr<<"Test en erreur: "<<message<<std::endl;
    }
}

void launchTests() {
    pVect p1(3,4,5);
    assert(p1.x == 3.0,"Mauvaise initialisation de x");
    assert(p1.y == 4.0,"Mauvaise initialisation de y");
    assert(p1.z == 5.0,"Mauvaise initialisation de z");

    pVect p2(1,2,3);
    pVect p3(1,1,1);
    p3 = p1 + p2;
    assert(p3.x == 4.0,"Mauvaise addition de x");
    assert(p3.y == 6.0,"Mauvaise addition de y");
    assert(p3.z == 8.0,"Mauvaise addition de z");

    pVect e1(1,2,3);
    pVect e2(1,2,3);
    assert(e1==e2,"Mauvaise égalité, devrait être égal");
    pVect e3(2,2,2);
    assert(!(e3==e2),"Mauvaise égalité, devrait être inégal");

    pVect vX(1,0,0);
    pVect vY(0,1,0);
    pVect vZ(0,0,1);
    pVect r = vX^vY;
    assert(r == vZ,"Mauvais produit vectoriel");
}

#endif
